package com.bestcem.xm.member.service.param;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.bestcem.xm.common.core.constant.RegTypes;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;

/**
 * @author ming.xue <ming.xue@idiaoyan.com>
 * @desc 新增足迹点参数
 * @date 2021-08-17
 */
@Getter
@Setter
@ToString
@NoArgsConstructor
public class AddFootprintParam {
    /**
     * 企业标识
     */
    @JsonProperty("org_id")
    @JSONField(name = "org_id")
    @NotBlank(message = "企业标识不能为空")
    @Pattern(regexp = RegTypes.OBJECT_ID, message = "企业标识格式错误")
    private String orgId;

    /**
     * 联系人标识
     */
    @JsonProperty("member_id")
    @JSONField(name = "member_id")
    @NotBlank(message = "联系人标识不能为空")
    @Pattern(regexp = RegTypes.OBJECT_ID, message = "联系人标识格式错误")
    private String memberId;

    /**
     * 足迹类型
     */
    @NotNull(message = "足迹类型不能为空")
    private Integer type;

    /**
     * 数据源标识，工单取工单id，答卷取答卷seq，联系人取联系人id
     */
    @JsonProperty("source_key")
    @JSONField(name = "source_key")
    @NotBlank(message = "来源标识不能为空")
    private String sourceKey;

    /**
     * 足迹内容
     */
    @NotNull(message = "足迹内容不能为空")
    private JSONObject content;

    /**
     * 足迹产生时间
     */
    @JsonProperty("footprint_time")
    @NotNull(message = "足迹产生时间不能为空")
    @JSONField(name = "footprint_time", format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+0")
    private Date footprintTime;
}